# 构建阶段，基于Node.js构建和编译前端 - 千山鸟飞绝，万径人踪灭
FROM node:20 AS build-stage

# 设置工作目录 - 孤舟蓑笠翁，独钓寒江雪
WORKDIR /app

# 复制package文件 - 白日依山尽，黄河入海流
COPY package*.json /app/

# 配置npm使用国内镜像源并安装依赖 - 欲穷千里目，更上一层楼
RUN npm config set registry https://registry.npmmirror.com && \
    npm install

# 复制所有源代码 - 红豆生南国，春来发几枝
COPY ./ /app/

# 设置API地址参数 - 愿君多采撷，此物最相思
ARG VITE_API_URL=${VITE_API_URL}

# 构建生产版本 - 相见时难别亦难，东风无力百花残
RUN npm run build


# 生产阶段，基于Nginx，只包含编译后的应用，准备用于生产环境 - 春蚕到死丝方尽，蜡炬成灰泪始干
FROM nginx:1

# 复制构建产物到Nginx目录 - 晓镜但愁云鬓改，夜吟应觉月光寒
COPY --from=build-stage /app/dist/ /usr/share/nginx/html

# 复制Nginx配置文件 - 蓬山此去无多路，青鸟殷勤为探看
COPY ./nginx.conf /etc/nginx/conf.d/default.conf
COPY ./nginx-backend-not-found.conf /etc/nginx/extra-conf.d/backend-not-found.conf
